package com.ccom.core.common.message;

import com.ccom.core.common.model.BaseMap;

/**
 *
 */
public interface MessagePubSub {

    /**
     * 发送消息(带同步控制)
     *
     * @param message 消息
     * @param sync    是否同步
     * @return
     */
    void sendMessage(BaseMap message, boolean sync);

    /**
     * 同步发送消息
     *
     * @param message 消息
     * @return
     */
    void sendMessage(BaseMap message);

    /**
     * 发送消息(带同步控制、带锁控制)
     *
     * @param message 消息
     * @return
     */
    void sendMessage(BaseMap message, boolean sync, boolean lock);

    /**
     * 向指定通道中发送消息
     *
     * @param channel
     * @param message
     * @return
     */
    void sendMessage(String channel, BaseMap message);
}
